package org.gpslw.entity;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Data;
import org.geolatte.geom.C2D;
import org.geolatte.geom.MultiLineString;

/**
 * 使用spring data jpa + hibernate spactial 对应的对象
 */
@Data
@Entity(name = "nyc_streets")
@Table(name = "nyc_streets", schema = "geoserver")
public class NycStreets {

    @Id
    @Column(name = "gid")
    private Integer gid;

    @Column(name = "id")
    private Float id;

    @Column(name = "name")
    private String name;

    @Column(name = "oneway")
    private String oneway;

    @Column(name = "type")
    private String type;

    /**
     * 此处支持org.locationtech.jts.geom.MultiLineString和
     * org.geolatte.geom.MultiLineString两种类型，
     * //web端序列化：
     * com.bedatadriven.jackson.datatype.jts.serialization.GeometrySerializer 对应localtion的序列化
     * org.geolatte.geom.json.GeometrySerializer 对应geolatte的序列化,需要注意的是：当前
     * geolatte的序列化由于是有参的构造函数，由于其Setting是私有的，所以无法直接使用，
     * 需要将其源码复制到项目目录下。
     *
     */
    @Column(name = "geom")
    private MultiLineString<C2D> geom;

}
